<?php
require_once("XmlControls.php");

class XmlRecesso extends XmlControls{
	
	static $instance;
	
	private function __construct() {
		
	}

	static function getInstance(){
		
		if(self::$instance == NULL){
			
			self::$instance = new XmlRecesso();
		}
		
		return self::$instance;
	}

	final public function GetData($conn,$cig,$num_progr,$num_progr_scheda) {
  //SOVRASCRIVO IL NUM_PROGR_SCHEDA PER ASSOCIARE CORRETTAMENTE I MSG DI ERRORE
  $_SESSION['XML__NUM_PROGR_SCHEDA']=$num_progr_scheda;
  
		$rs=array();

		$query_data = "SELECT ID, CIG, TERMINE_CONSEGNA, DATA_CONSEGNA, TIPOLOGIA_COMINUCAZIONE_ID, GIORNI_RITARDO, MOTIVAZIONE_RITARDO,  
                   DATA_RECESSO, RECESSO_ACCOLTO, CONSEGNA_TARDIVA, RIPRESA_LAVORI, RISERVE_APPALTATORE, RIMBORSO, ONERI_RITARDO, 
                   SCHEDA_CHIUSA, UTENTE_ID, DATA_CHIUSURA, NUM_PROGR, GIORNI_SOSPENSIONE, DATA_SCADENZA_INVIO, NUM_PROGR_SCHEDA, ID_SIMOG
									 FROM RECESSO WHERE CIG='".$cig."' AND SCHEDA_CHIUSA IN ('S') AND ARCHIVIATA !='S' AND NUM_PROGR='".$num_progr."'";
		
		if ($num_progr_scheda!=""){
			$query_data.=" AND NUM_PROGR_SCHEDA='".$num_progr_scheda."'";
		}

		$rs=$conn->doquery_oracle_import($query_data, "select");

		$rs_data=array();
		$i=0;
		foreach($rs as $data){
		      
			$rs_data[$i]["ID"]=$data["1"];
			$rs_data[$i]["CIG"]=$data["2"];
			$rs_data[$i]["TERMINE_CONSEGNA"]=$data["3"];
			$rs_data[$i]["DATA_CONSEGNA"]=$data["4"];
			$rs_data[$i]["TIPOLOGIA_COMINUCAZIONE_ID"]=$data["5"];
			$rs_data[$i]["GIORNI_RITARDO"]=$data["6"];
			$rs_data[$i]["MOTIVAZIONE_RITARDO"]=$data["7"];
			$rs_data[$i]["DATA_RECESSO"]=$data["8"];
			$rs_data[$i]["RECESSO_ACCOLTO"]=$data["9"];
			$rs_data[$i]["CONSEGNA_TARDIVA"]=$data["10"];
			$rs_data[$i]["RIPRESA_LAVORI"]=$data["11"];
			$rs_data[$i]["RISERVE_APPALTATORE"]=$data["12"];
			$rs_data[$i]["RIMBORSO"]=$data["13"];
			$rs_data[$i]["ONERI_RITARDO"]=$data["14"];
			$rs_data[$i]["SCHEDA_CHIUSA"]=$data["15"];
			$rs_data[$i]["UTENTE_ID"]=$data["16"];
			$rs_data[$i]["DATA_CHIUSURA"]=$data["17"];
			$rs_data[$i]["NUM_PROGR"]=$data["18"];
			$rs_data[$i]["GIORNI_SOSPENSIONE"]=$data["19"];
			$rs_data[$i]["DATA_SCADENZA_INVIO"]=$data["20"];
			$rs_data[$i]["NUM_PROGR_SCHEDA"]=$data["21"];
			$rs_data[$i]["ID_SIMOG"]=$data["22"];
			
			$i=$i+1;
		}

		return $rs_data;
		
	}
	
	final public function CreateXml($rs,$conn) {

		/*
		echo "<pre>";
		print_r($rs);
		echo "</pre>";
		exit;
		*/
					
		$xml.='<DatiRitardi>';
		$rs_data[1]=$rs["data"];
		foreach($rs_data as $record_key  => $record_value){

		 foreach($record_value as $record){
           
           $DATA_TERMINE=$this->WorkData("DATA_TERMINE",$record["TERMINE_CONSEGNA"],"Y");               //presenza A* V*
           $DATA_CONSEGNA=$this->WorkData("DATA_CONSEGNA",$record["DATA_CONSEGNA"]);                    //presenza A V
           $TIPO_COMUN=$this->WorkFlagTCType("TIPO_COMUN",$record["TIPOLOGIA_COMINUCAZIONE_ID"],$conn); //presenza A* V*
           $DURATA_SOSP=$this->WorkIntero5("DURATA_SOSP",$record["GIORNI_SOSPENSIONE"],"Y");            //presenza A* V*
           $MOTIVO_SOSP=$this->WorkStringa("MOTIVO_SOSP",$record["MOTIVAZIONE_RITARDO"],"1000");	      //presenza A V
           $DATA_IST_RECESSO=$this->WorkData("DATA_IST_RECESSO",$record["DATA_RECESSO"]);               //presenza A V
           $FLAG_ACCOLTA=$this->WorkSN("FLAG_ACCOLTA",$record["RECESSO_ACCOLTO"]);                      //presenza A V
           $FLAG_TARDIVA=$this->WorkSN("FLAG_TARDIVA",$record["CONSEGNA_TARDIVA"],"Y");                 //presenza A* V*
           $FLAG_RIPRESA=$this->WorkSN("FLAG_RIPRESA",$record["RIPRESA_LAVORI"],"Y");                   //presenza A* V*
           $FLAG_RISERVA=$this->WorkSN("FLAG_RISERVA",$record["RISERVE_APPALTATORE"],"Y");              //presenza A* V*
           $IMPORTO_SPESE=$this->WorkImporto("IMPORTO_SPESE",$record["RIMBORSO"]);                      //presenza A V
           $IMPORTO_ONERI=$this->WorkImporto("IMPORTO_ONERI",$record["ONERI_RITARDO"]);                 //presenza A V
           $ID_SCHEDA_LOCALE=$this->WorkNumero("ID_SCHEDA_LOCALE",$record["ID"]);                       //presenza A V
           $ID_SCHEDA_SIMOG=$this->WorkNumero("ID_SCHEDA_SIMOG",$record["ID_SIMOG"]);                   //presenza A V
           
           
			$xml.='<Ritardo tns:DATA_TERMINE="'.$DATA_TERMINE.'" ';

			if($DATA_CONSEGNA!=''){
				$xml.=' tns:DATA_CONSEGNA="'.$DATA_CONSEGNA.'"';
			}
			
			$xml.=' tns:TIPO_COMUN="'.$TIPO_COMUN.'"';
			  
			$xml.=' tns:DURATA_SOSP="'.$DURATA_SOSP.'"';
			
			$xml.=' tns:MOTIVO_SOSP="'.$MOTIVO_SOSP.'"';
			
      if($DATA_IST_RECESSO!=''){
				$xml.=' tns:DATA_IST_RECESSO="'.$DATA_IST_RECESSO.'"';
			}
			
			if($FLAG_ACCOLTA!=''){
				$xml.=' tns:FLAG_ACCOLTA="'.$FLAG_ACCOLTA.'"';
			}
			
			$xml.=' tns:FLAG_TARDIVA="'.$FLAG_TARDIVA.'"';
			  
			$xml.=' tns:FLAG_RIPRESA="'.$FLAG_RIPRESA.'"';
			
			$xml.=' tns:FLAG_RISERVA="'.$FLAG_RISERVA.'"';

      if($IMPORTO_SPESE!=''){
				$xml.=' tns:IMPORTO_SPESE="'.$IMPORTO_SPESE.'"';
			}
			
      if($IMPORTO_ONERI!=''){
				$xml.=' tns:IMPORTO_ONERI="'.$IMPORTO_ONERI.'"';
			}	
			
			/*if ($ID_SCHEDA_LOCALE!=''){
				$xml.=' tns:ID_SCHEDA_LOCALE="'.$ID_SCHEDA_LOCALE.'"';
			}

			if ($ID_SCHEDA_SIMOG!=''){
				$xml.=' tns:ID_SCHEDA_SIMOG="'.$ID_SCHEDA_SIMOG.'"';
			}*/
			/*if ($ID_SCHEDA_SIMOG!='')
			{
				$xml.=' tns:ID_SCHEDA_SIMOG="'.$ID_SCHEDA_SIMOG.'"';
			}
			else
			{		  
			   $query_data_DC ="SELECT  ID_SIMOG FROM DATI_COMUNI WHERE CIG='".$record["CIG"]."' AND NUM_PROGR='".$record["NUM_PROGR"]."'";
               $rsDC=$conn->doquery_oracle_import($query_data_DC, "select");
			  if($rsDC[1][1]=="")
			  {
                if ($ID_SCHEDA_LOCALE!='')
                {
			      $xml.=' tns:ID_SCHEDA_LOCALE="'.$ID_SCHEDA_LOCALE.'"';
			    }
		      }
		    }*/
		    $xml.=' tns:ID_SCHEDA_LOCALE="'.$ID_SCHEDA_LOCALE.'"';		
		    
		    	
			$xml.='/>';
     
     }
     
		}

		$xml.='</DatiRitardi>';		 

		return $xml;

	}

}
?>